package com.sunyur.tailor.channel.service.inner.recycle.service;

import com.sunyur.tailor.channel.common.middle.base.ChannelListResult;
import com.sunyur.tailor.channel.common.middle.base.ChannelResult;
import com.sunyur.tailor.channel.service.inner.recycle.model.RecycleHeadModel;
import com.sunyur.tailor.channel.service.inner.recycle.model.RecycleListItemModel;
import com.sunyur.tailor.channel.service.inner.recycle.param.RecycleAuditParam;
import com.sunyur.tailor.channel.service.inner.recycle.param.RecycleConfirmParam;
import com.sunyur.tailor.channel.service.inner.recycle.param.RecycleHeadParam;
import com.sunyur.tailor.channel.service.inner.recycle.param.RecycleRollBackStatusParam;

/**
 * @Author: HuBaoding
 * @Description:利旧 (充分利用旧有资源) 相关Service
 * @Date: Created in 14:38 2021/5/14
 */
public interface RecycleService {

    /**
     * 根据单号获取利旧单头部信息
     * @param param
     * @return
     */
    ChannelResult<RecycleHeadModel> getRecycleHead(RecycleHeadParam param);

    /**
     * 根据单号获取利旧行信息
     * @param param
     * @return
     */
    ChannelListResult<RecycleListItemModel> getRecycleItemList(RecycleHeadParam param);

    /**
     * 利旧单外部审批
     * @param param
     * @return
     */
    ChannelResult<Boolean> recycleAudit(RecycleAuditParam param);

    /**
     * 利旧领用,确认领用
     * @param param
     * @return
     */
    ChannelResult<Boolean> recycleConfirm(RecycleConfirmParam param);

    /**
     * 利旧单状态回滚
     * @param param
     * @return
     */
    ChannelResult<Boolean> recycleRollBackStatus(RecycleRollBackStatusParam param);

}
